Transmission control protocol (TCP) is a stateful protocol that supports endpoints on a network establishing a TCP connection, communicating through the TCP connection, and ultimately terminating the TCP connection. Both endpoints, e.g., two computers, or a client and a server, maintain state information about the TCP connection. Communication nodes on the network between the client and server may be stateful or stateless. Many computing, communication and storage systems with multiple servers or nodes use load-balancing to distribute communication, workloads and/or data across the multiple servers or nodes. The load-balancing can also be stateful or stateless. A problem arises when the server or node membership in one of these computing, communication or storage systems changes, affecting stateless load-balancing, and packets associated with a TCP connection are delivered to a different server or node than the one for which the TCP connection was originally established. Under these circumstances, an application that is not receiving a response may timeout, but this is likely on the order of minutes later, rather than milliseconds of latency, which is more desirable. A stateful load balancer may not experience this problem, but the stateful load balancer requires tracking of states of TCP connections with attendant consumption of memory and processing resources and thus does not scale well for larger systems with more servers or nodes and/or more clients. This problem is especially critical in a storage cluster with an expandable number of storage nodes and other features for scaling the capacity of the storage system, where stateless load-balancing is a desired feature for scalable system architecture. Therefore, there is a need in the art for a solution which overcomes the drawbacks described above.